package com.huaxin.hxmoduleworkorder.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.hxmoduleworkorder.dto.ResponseResult;
import com.huaxin.hxmoduleworkorder.dto.request.InspectionTemplateItemRelCreateReqDTO;
import com.huaxin.hxmoduleworkorder.models.InspectionTemplateItem;
import com.huaxin.hxmoduleworkorder.models.InspectionTemplateItemRel;

import java.util.List;

public interface InspectionTemplateItemRelService extends IService<InspectionTemplateItemRel> {
    /**
     * 添加
     *
     * @param in
     * @return
     */
    ResponseResult<InspectionTemplateItemRel> create(InspectionTemplateItemRelCreateReqDTO in);

    /**
     * 删除
     *
     * @param templateId     模版id
     * @param templateItemId 模版项id
     * @return
     */
    ResponseResult<String> delete(String templateId, String templateItemId);

    /**
     * 根据模板ID查询
     *
     * @param templateId
     * @param customerType
     * @return
     */
    ResponseResult<List<InspectionTemplateItem>> listByTemplateId(String templateId, String customerType);

    /**
     * 根据模板ID删除
     *
     * @param templateId
     * @return
     */
    ResponseResult<String> deleteByTemplateId(String templateId);

    /**
     * 根据变电箱类型查询
     *
     * @param cabinetType
     * @return
     */
    ResponseResult<List<InspectionTemplateItem>> listByCabinetType(String cabinetType);

    /**
     * 根据变电箱类型删除
     *
     * @param cabinetType
     * @param templateItemId
     * @return
     */
    ResponseResult<String> deleteByCabinetType(String cabinetType, String templateItemId);

    /**
     * 根据关联关系ID删除
     *
     * @param relId
     * @return
     */
    ResponseResult<String> deleteByRelId(String relId);

    /**
     * 查询变电箱类型是否被使用
     *
     * @param cabinetType
     * @return
     */
    ResponseResult<Boolean> existsByCabinetType(String cabinetType);
}
